home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Geek Gadgets 2
/
Geek_Gadgets_2_2352.bin
/
lists
/
ade-gcc.archive.9602.gz
/
ade-gcc.archive.9602
/
000091_owner-ade-gcc_Mon Feb 19 07:14:37 1996.msg
< prev
next >
Wrap
Internet Message Format
|
1996-02-28
|
3KB
Return-Path: <owner-ade-gcc>
Received: by fishpond (Smail3.1.29.1 #57)
id m0toUTk-000gXYa; Mon, 19 Feb 96 07:14 EST
Sender: owner-ade-gcc
Received: from delta.mdy.univie.ac.at by fishpond with smtp
(Smail3.1.29.1 #57) id m0toUTd-000gXUC; Mon, 19 Feb 96 07:13 EST
Received: from localhost by delta.mdy.univie.ac.at with SMTP
(1.38.193.4/16.2) id AA22161; Mon, 19 Feb 1996 13:05:12 +0100
Message-Id: <31286777.40D7@mdy.univie.ac.at>
Date: Mon, 19 Feb 1996 13:05:11 +0100
From: Alfred Minarik <am@mdy.univie.ac.at>
X-Mailer: Mozilla 2.0 (X11; I; HP-UX A.09.05 9000/720)
Mime-Version: 1.0
To: Kamil Iskra <kiskra@ernie.icslab.agh.edu.pl>
Cc: Matthias Fleischer <fleischr@IZFM.Uni-Stuttgart.DE>,
amiga-gcc-port@nic.funet.fi, ADE GCC List <ade-gcc@ninemoons.com>
Subject: Re: Passing arguments in registers and stack checking/extension
References: <Pine.SUN.3.91.960219120359.4888B-100000@ernie>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Sender: owner-ade-gcc@ninemoons.com
Precedence: bulk
> On Fri, 16 Feb 1996, Matthias Fleischer wrote:
>
> > > I think the big problem is that this small functions like __link_a5_d0,
> > > __sub_a7_d0 or __stkchk_d0 (or whatever they're called) expect argument in
> > > d0. However, d0 is used to pass argument to user's function, so it can't
> > > be used as argument for stack checking/extension functions.
> > That's true. But if you use stack based arguments for the stackextend
> > functions to get registerized parameters you don't win anything. You only
> > move the overhead of pushing/popping registers out of the normal function
> > call into the stackextend call. I guess any solution that is really fast
> > will need to be very complicated, too :-(.
>
> You are right. Actually, I'm not aware of any other solution of passing
> arguments than on stack or registers (or in static storage - but this is
> complete braindamage) - since none of these seems reasonable, I guess we
> will have to drop support for register parameters used together with stack
> checking/extension...
To me there seems to be a solution of passing both in registers.
As the common sense seems to settle on passing register arguments in
d0,d1,a0,a1,
you could use d2,(+a2) for the time critical stack checking/extension
functions,
which should not need other registers then d2,(+a2).
Without stack-checking d2,a2 would be free for other needs.
Why should this be impossibile ?
- Alfred